part of newer;

/*
abstract class Buffer {
   // write operations
   void inssq (Position where, String seq);
   void insnl (Position where);
   void delsq (Position where, int seq);
   void delnl (Position where);
   // read operations
   String getch (Position where, int cnt);
   String getln (int which);
   int get lncnt;
}
*/
abstract class Screen {
   // write operations
   void upd (int which, String what);
   void ins (int where, String what);
   void del (int which, String what);
   void cur (int vert, int hori);
   // read operations
   // sanity check
   bool get isValid
}

abstract class BoundedArray<Item> {
   // creators
   factory BoundedArray (int max, Item getNull ()) => new BoundedArrayImp<Item>(max, getNull);
   // mutators
   void rep (int which, Item what);
   void ins (int where, Item what);
   void del (int which, [Item what]);
   // observers
   Item get (int which);
   // invariants
   bool get valid;
}
